-
Notifications
You must be signed in to change notification settings - Fork 301
feat: Add istio profile for E2E testing framework #728
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Conversation
✅ Deploy Preview for vllm-semantic-router ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
👥 vLLM Semantic Team NotificationThe following members have been identified for the changed files in this PR and have been automatically assigned: 📁
|
607b8e2 to
0ce7df0
Compare
|
@srampal PTAL, thanks |
|
Hello Reviewers. |
c71d529 to
bccdccf
Compare
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
initially i think this is good to go, separetly with istio specific cases but still i think we need to reuse the testcases to make sure istio gateway with vsr functionality work well
8002d08 to
0ebd1bb
Compare
Implement comprehensive E2E testing profile for Istio service mesh integration with Semantic Router: - Add Istio profile with 4 Istio-specific tests and 13 common tests (17 total) - Deploy Semantic Router with Istio sidecar injection and service mesh features - Integrate Envoy Gateway for ExtProc communication alongside Istio mesh capabilities - Deploy vLLM backend via Gateway API resources with AIServiceBackend CRDs - Add keyword routing support (urgent_request and sensitive_data decisions) - Fix Istio test namespace resolution to use vllm-semantic-router-system - All 17 tests passing with 100% success rate in local testing Test coverage includes: - Istio sidecar injection and health verification - Traffic routing through Istio ingress gateway - mTLS verification between services - Distributed tracing and observability - Chat completions, stress tests, and domain classification - Plugin chain execution, PII/jailbreak detection, semantic caching Signed-off-by: Asaad Balum <[email protected]>
0ebd1bb to
4827ebc
Compare

This PR implements the Istio profile for the E2E testing framework as requested in issue #656.
Istio Service Mesh Integration E2E Test Profile
🎯 Overview
Successfully implemented and validated a comprehensive E2E testing profile for Istio service mesh integration with Semantic Router. All 17 tests pass with 100% success rate in local testing.
✅ Test Results
Local Testing:
✨ Implementation
Istio-Specific Tests (4)
Sidecar Health Check ✅
istio-injection=enablednamespace labelTraffic Routing ✅
Server: istio-envoy)mTLS Verification ✅
ISTIO_MUTUALmodeTracing & Observability ✅
Common Tests (13) ✅
All shared tests passing:
🏗️ Architecture
Service Mesh Components:
┌─────────────────────┐
│ Istio Control Plane │
│ (istiod) │
└──────────┬──────────┘
│
┌──────┴──────┐
│ Istio │
│ Ingress │
│ Gateway │
└──────┬──────┘
│
┌──────┴────────────┐
│ Semantic Router │
│ + Envoy Sidecar │
│ (vllm-semantic- │
│ router-system) │
└──────┬────────────┘
│
┌──────┴──────────┐
│ Envoy Gateway │
│ (ExtProc) │
└──────┬──────────┘
│
┌──────┴───────────┐
│ Envoy AI Gateway │
│ (CRDs for service│
│ discovery) │
└──────┬───────────┘
│
┌──────┴──────────┐
│ vLLM Backend │
│ (via Gateway │
│ API resources)│
└─────────────────┘
Key Design Decisions:
1. Hybrid Architecture (Istio + Envoy Gateway)
2. Dynamic Service Discovery
3. Namespace Configuration
vllm-semantic-router-system(consistent with other profiles)🎁 Additional Enhancements
Keyword Routing Support⚠️ Shared Enhancement
Added keyword-based routing decisions to
e2e/profiles/ai-gateway/values.yaml:New Decisions:
urgent_request(priority 30)urgent,immediate,asap,emergency(OR logic)sensitive_data(priority 40)SSNANDcredit card(AND logic)Impact: This enhancement benefits ALL profiles that include the
keyword-routingtest. It's a shared configuration improvement, not Istio-specific.Rationale: The
keyword-routingcommon test was failing because keyword routing rules were missing from the configuration. These additions enable the test to pass across all profiles that useai-gateway/values.yaml.📊 Detailed Test Metrics
🔧 Technical Implementation
Deployment Sequence:
istio-injection=enabledlabelConfiguration Details:
e2e/profiles/ai-gateway/values.yamlvllm-semantic-router-systemNever(uses local images in CI)Files Modified:
e2e/profiles/istio/profile.go(322 insertions) - Main profile implementatione2e/profiles/ai-gateway/values.yaml(54 insertions) - Keyword routing supporte2e/testcases/istio_*.go(4 files, 24 insertions) - Namespace fixesTotal: 6 files, 336 insertions(+), 72 deletions(-)
✅ Pre-commit & CI Validation
Local Validation:
CI Integration:
.github/workflows/integration-test-k8s.ymlai-gateway,aibrix,routing-strategies,llm-d📚 References
FIX #656